// 作者:于大明

//------------------------------mock数据引入---------------------------
import customMessageMock from './custom-message_mock.js';

//------------------------------mixins引入---------------------------
import customMessageMixins from './custom-message_mixins.js';

//-------------------------Service引入----------------------------------
// import CY17 from '@/service/CY/CY17AppService.js';

//--------------------------核心规范-------------------------------------
//1 能不能在页面单行代码实现
//2 能不能不用data methods去实现这个功能(有返回值不用传参数的用compute,有返回值有传参的那么使用filters实现)
//3 以最少的代码实现功能(需要封装除外)
//4 相同代码一定更要封装 区分职责关系 

export default {
    name: 'custom-message',
    // 注册属性
    props: {
        inputItems: {
            type: Array,
            require: false,
            default: () => [{}],
        },
    },
    mixins: [customMessageMixins],
    // 负责程序中需要进行set的数据 就是页面交互需要改的数据 比如点击checkbox 需要设置true false 和存放ajax的输入输出 (尽量少去定义data里面的属性 多用computed或者filters或者组件进行处理) 
    // 1 能不能在页面单行代码实现
    // 2 能不能不用data methods去实现这个功能
    data() {
        return {
            number : '',
            goods : '',
            price : '',
            to : null
        }
    },
    // 组件创建生命周期 这个时候 vue对象已经创建好 可以访问data和method数据
    created() {
    },
    // 负责和页面事件进行交互
    methods: {
       submitCustomMessageForm () {
           let order = {
               number: this.number,
               goods: this.goods,
               price: this.price
           }
           this.$emit('createCustomMessage', order);
       },
       cancel () {
           this.$emit('closeCustomMessageForm');
       }
    },
    // 不要set的数据 统一用computed实现(能用computed 实现的 尽量用他实现 不要用data和method处理) 有返回值的不需要传参的method用computed实现 
    computed: {
        items() {
            return this.$_.cloneDeep(this.inputItems);
        },
    },
    // 负责格式化数据 有返回值的需要传参的method 用filters实现
    filters: {
        // 多个参数filter 调用  {{day|weekDayFmt(getStudentListIn.month)}} filter filter后缀加上Fmt
        //weekDayFmt(day, yearMonth) {
        //    var weekDay = moment(yearMonth + "-" + day).day();
        //    var weekObj = { 1: "一", 2: "二", 3: "三", 4: "四", 5: "五", 6: "六", 0: "日" };
        //    return weekObj[weekDay];
        //},
    },
    // 负责数据变化后需要和接口交互
    watch: {
        //"currentStore.storeId": {
        //    handler(val, oldval) {
        //        if (val) {
        //        }
        //    },
        //    deep: true,
        //    immediate: true
        //}
    },
};
